package com.ylr.retrofitLearning.Interceptor;

import com.github.lianjiatech.retrofit.spring.boot.annotation.InterceptMark;
import com.github.lianjiatech.retrofit.spring.boot.interceptor.BasePathMatchInterceptor;

import java.lang.annotation.*;

/**
 * @Annotation Sign
 * @Description TODO 扩展注解式拦截器
 * @Author ylr
 * @Date 2021/7/23 15:15
 * @Version 1.0
 */

@Retention(RetentionPolicy.RUNTIME)/*注解保留的时间范围 ---运行期保留，可以通过反射去获取注解信息*/
@Target(ElementType.TYPE)/*注解适用范围 --类接口枚举类*/
@Documented/*javadoc */
@InterceptMark /*自定义注解必须用@InterceptMark 标记，包括include()、exclude()、handler()属性信息*/
public @interface Sign {

    /*密钥Key*/
    String accessKeyID();

    /*密钥*/
    String accessKeySecret();

    /*拦截器匹配路径*/
    String[] include() default {"/**"};

    /*拦截器排除匹配，排除指定路径拦截*/
    String[] exclude() default {};

    /*处理该注解的拦截类
    * 优先从spring容器中获取对应的bean，如果获取不到，则使用反射创建一个*/
    Class<? extends BasePathMatchInterceptor> handler() default SignInterceptor.class;  //实现注解的类












}
